#region *** Using Statements ***

using System;
using System.Collections.Generic;
using System.Text;

#endregion

namespace PrasadMatkar.Tutorial.Interfaces
{
    /// <summary>
    /// This is going to contain few properties and methods which would be implemented in the derived class
    /// </summary>
    public interface IBankBusinessMethods
    {
        // Please note - 
        // Interface cannot contain fields.
        // The methods and properties cannot have defination
        // The methods and properties cannot have access modifiers, they are inherently public
        // Implementation needs to be provided to all the methods and properties of the interface in the class that implements this interface
        
        /// <summary>
        /// Method stub for depositing money
        /// </summary>
        /// <param name="money">True if money is deposited successfully else False</param>
        bool DepositMoney(decimal money);

        /// <summary>
        /// Method stub for withdrawing money from the bank
        /// </summary>
        /// <param name="money"></param>
        /// <returns>True if sucessfully withdrawn else False</returns>
        bool WithDrawMoney(decimal money);

        /// <summary>
        /// Shows the existing balance in the account
        /// </summary>
        /// <returns>Balance amount</returns>
        decimal ShowBalance();
    }
}